<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

</body>
<script>
    // 在`ES5`中，`JS`的作用域分为全局作用域和局部作用域。通常是用函数区分的，函数内部属于局部作用域。
    // `ES5` 只有全局作用域和函数作用域，没有块级作用域，这带来很多不合理的场景



    // var a = 1;// 全局作用域下定义了一个变量（可以在其它位置调用）
    // function fn(){
    //     var b = 2;// 函数作用域（局部作用域，只能够在函数内部调用）闭包
    // }

    // es5当中没有块级作用域
    // if(1===1){
    //     var a = 100;// 相当于声明了全局
    // }
    // console.log(a);// 控制台打印a

    // 内层变量可能会覆盖外层变量。
    // var num = 100;
    // if(num === 100){
    //     var num = 200;
    // }
    // console.log(num);// 200

    // 用来计数的循环变量泄露为全局变量。
    var arr = [1,2,3,4];// 4
    for(var i=0;i<arr.length;i++){
        console.log(arr[i]);
    }
    console.log(i);// 4

</script>
</html>